U.S. patent application Ser. No. 10/144,333 (incorporated in this document by reference) describes a single wire serial interface for power control and other devices. For this protocol, a master device uses a single wire to communicate with a slave device. To send a command to the slave, the master device toggles the voltage on the serial line. The slave counts the number of voltage transitions on the serial line and enters an operational state that corresponds to that number. The master device can then cause the device to maintain its operational state by holding the voltage on the serial line high. Alternately, by holding the voltage low for a predetermined timeout period, the master causes the slave device to reset.
As an example, consider an LED driver that supports 64 levels of brightness as well as an off state. To control a device of this type using the single wire serial interface, a master device would choose the brightness level desired and cause the voltage on the serial line to toggle that many times. Toggling the voltage 39 times would, for example, select the 39th brightness level. Holding the serial line high would cause the previously defined brightness level to be maintained. Holding the serial line low would cause the LED driver to turn the LED off.
U.S. patent application Ser. No. 10/447,764 (incorporated in this document by reference) extends the single wire serial protocol to include addressing and input-output capabilities. Addressing is used where the slave device includes several registers or addresses. To write a value into one of these registers, the master device uses the single wire serial protocol to send a register address. The master device then sends the data that is to be written into the selected register. Address and data are distinguished by the number of bits used to encode each: all sequences of more than n bits (where n is a predefined number) are treated as addresses. All sequences of n or fewer bits are treated as data.
As described in the same document, input-output operations allow slave devices to send data to master devices. To support input-output operations, a slave device is configured to recognize one or more predefined register addresses. A message that corresponds to one of the predefined addresses instructs the slave device to return the contents of a corresponding register. The slave device responds by using the single wire serial protocol to encode and send the register contents.